package com.greensam.pixelengine.service;

import com.greensam.pixelengine.pojo.entity.RolePermissionPo;
import com.greensam.pixelengine.pojo.entity.RolePo;
import com.greensam.pixelengine.pojo.entity.UserRolePo;
import jakarta.validation.constraints.NotBlank;

import java.util.List;
import java.util.Optional;

/**
 * @author Macro_Ray
 * @since 2025/6/19 15:00
 */
public interface RoleDataService {

    void save(RolePo rolePo);

    List<RolePo> listRolePo();

    Optional<RolePo> getRolePoByCode(@NotBlank String code);

    Optional<RolePo> getRoleById(Long id);

    List<UserRolePo> listUserRoleByRoleId(Long roleId);

    /**
     * 是否具备管理员权限
     *
     * @param userId 用户id
     * @author Macro_Ray
     * @since 2025/7/2
     */
    Boolean isAdmin(Long userId);

    List<RolePermissionPo> listRolePermissionByRoleIds(List<Long> roleIds);
}
